home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / keyb / dce.zip / DCESUBS.SRC < prev    next >
Text File  |  1989-02-06  |  59KB  |  1,821 lines

  1.  
  2. '              *****    DCE    **    (C)1988-89, by GNA.    *****
  3.  
  4. '═════════════════════════════════════════════════════════════════════════════
  5.  
  6. ' *** waiting for a keyhit  ***
  7.  
  8. ATTEND:
  9.    A$=""
  10.    WHILE A$=""
  11.  
  12. ' *** display special keys state ***
  13.  
  14.       IF Ins=1 THEN
  15.          LOCATE 25,61:COLOR 0,7:PRINT "Ins";
  16.       ELSE
  17.          LOCATE 25,61:COLOR 0,1:PRINT "Ins";
  18.       END IF
  19.       REG %AX,&H0200
  20.       CALL INTERRUPT &H16
  21.       IF (REG(%AX) AND 64)=64 THEN
  22.          LOCATE 25,65:COLOR 0,7:PRINT "Caps";
  23.       ELSE
  24.          LOCATE 25,65:COLOR 0,1:PRINT "Caps";
  25.       END IF
  26.       IF (REG(%AX) AND 32)=32 THEN
  27.          LOCATE 25,70:COLOR 0,7:PRINT "Num";
  28.       ELSE
  29.          LOCATE 25,70:COLOR 0,1:PRINT "Num";
  30.       END IF
  31.       IF (REG(%AX) AND 16)=16 THEN
  32.          LOCATE 25,74:COLOR 0,7:PRINT "Scroll";
  33.       ELSE
  34.          LOCATE 25,74:COLOR 0,1:PRINT "Scroll";
  35.       END IF
  36.  
  37. ' *** help ? ***
  38.  
  39.       LOCATE 1,53
  40.       IF FlgAidePos=0 THEN
  41.          COLOR 7,0:PRINT SPACE$(9);
  42.       ELSE
  43.          COLOR 12,0:PRINT "[F1] Help";
  44.       END IF
  45.  
  46. ' *** date & hour on right top of screen ***
  47.  
  48.       LOCATE 1,72:COLOR 0,7:PRINT TIME$;
  49.       LOCATE 1,63:COLOR 0,7:PRINT LEFT$(DATE$,6)+RIGHT$(DATE$,2)
  50.  
  51. ' *** alarm ? ***
  52.  
  53.       IF Alarme$=Depr$ THEN
  54.          LOCATE 2,72:COLOR 11,0:PRINT STRING$(8,CHR$(196));
  55.       ELSE
  56.          IF Alarme$>LEFT$(TIME$,5) THEN
  57.             LOCATE 2,72:COLOR 11,0:PRINT "[Alarm!]";
  58.          ELSE
  59.  
  60. ' *** starting bell ***
  61.  
  62.             LOCATE 2,72:COLOR 27,0:PRINT "[Alarm!]";
  63.             IF FlgBell=0 THEN
  64.                SOUND 440,1100:ZAlrm=INT(TIMER):FlgBell=1
  65.             ELSE
  66.  
  67. ' *** user stop bell ***
  68.  
  69.                IF FlgBellStop=1 THEN
  70.                   IF (INT(TIMER)-ZAlrm)<60 THEN
  71.                      SOUND 440,1100-INT((INT(TIMER)-ZAlrm)*18.2)
  72.                   END IF
  73.                   FlgBellStop=0
  74.                END IF
  75.  
  76. ' *** bell autostop after a minute ***
  77.  
  78.                IF (INT(TIMER)-ZAlrm)>60 THEN
  79.                   Alarme$=Depr$:SOUND 440,0:FlgBell=0
  80.                   IF (FlgAlrm=1 AND Prog=0) THEN
  81.                      LOCATE 13,31:COLOR 0,7:PRINT Deprog$;
  82.                   END IF
  83.                END IF
  84.  
  85. ' *** flashing screen three seconds ***
  86.  
  87.                IF ((INT(TIMER)-ZAlrm)<3 OR FlgBell=-1) THEN
  88.                   FlgBell=-FlgBell
  89.                   IF FlgBell=-1 THEN REG %AX,&H0501 ELSE REG %AX,&H0500
  90.                   CALL INTERRUPT &H10
  91.                END IF
  92.             END IF
  93.          END IF
  94.       END IF
  95.  
  96. ' *** keyboard buffer scan ***
  97.  
  98.       A$=INKEY$
  99.       IF (A$=CHR$(13) AND FlgBell<>0) THEN SOUND 440,0:FlgBellStop=1
  100.  
  101. ' *** branch on full screen clock if any ***
  102.  
  103.       IF FlgHorl=1 THEN GOSUB AFFICHEURE
  104.    WEND
  105.  
  106. ' *** assumes screen in right mode ***
  107.  
  108.    REG %AX,&H0500
  109.    CALL INTERRUPT &H10
  110. RETURN
  111.  
  112. '═════════════════════════════════════════════════════════════════════════════
  113.  
  114. ' *** display full screen : last cde, date, hour, directory ***
  115.  
  116. ECRAN:
  117.  
  118. ' *** disk drive letter ***
  119.  
  120.    REG %AX,&H1900
  121.    CALL INTERRUPT &H21
  122.    X%=(REG(%AX) AND &HFF)+1
  123.    Disk$=CHR$(&H40+X%)
  124.  
  125. ' *** directory in use ***
  126.  
  127.    REG %AX,&H4700
  128.    REG %DS,Segment&
  129.    REG %SI,Offset&
  130.    REG %DX,X%
  131.    CALL INTERRUPT &H21
  132.  
  133. ' *** top and bottom lines of screen ***
  134.  
  135.    LOCATE 1,1:COLOR 7,0:PRINT SPACE$(80);
  136.    LOCATE 1,2:COLOR 14,0:PRINT Logiciel$+CHR$(32)+"="+CHR$(32);
  137.    LOCATE 2,1:COLOR 11,0:PRINT STRING$(80,196);
  138.    LOCATE 25,1:COLOR 14,1:PRINT SPACE$(80);
  139.    LOCATE 25,2:COLOR 14,1:PRINT Logiciel$+CHR$(32)+"="+CHR$(32);
  140.    LOCATE 25,56:COLOR 14,1:PRINT "V"+Vers$;
  141.  
  142. ' *** troncated string if too long ... ***
  143.  
  144.    LOCATE 1,Marge:COLOR 7,0
  145.    IF LEN(Temp$)>41 THEN
  146.       PRINT LEFT$(Temp$,41);"...";
  147.    ELSE
  148.       PRINT Temp$;
  149.    END IF
  150.  
  151. ' *** write used drive name ***
  152.  
  153.    LOCATE 2,2:COLOR 11,0:PRINT "Dir"+CHR$(32)+"="+CHR$(32);
  154.    COLOR 7,0:PRINT Disk$+":\";
  155.  
  156. ' *** write current path (ASCIIZ string) ***
  157.  
  158.    DEF SEG=Segment&
  159.    Y&=Offset&
  160.    WHILE PEEK(Y&)<>0
  161.       PRINT CHR$(PEEK(Y&));:Y&=Y&+1
  162.    WEND
  163.    DEF SEG
  164.  
  165. ' *** there is no RETURN here !!! ***
  166.  
  167. '═════════════════════════════════════════════════════════════════════════════
  168.  
  169. ' *** write command line and put cursor ***
  170.  
  171. ECRIT:
  172.    IF LEN(DebCde$)<%MaxLig-1 THEN
  173.       IF LEN(DebCde$+FinCde$)>%MaxLig-1 THEN
  174.          LOCATE 25,Marge
  175.          COLOR 11,1:PRINT DebCde$;LEFT$(FinCde$,%MaxLig-LEN(DebCde$));
  176.       ELSE
  177.          LOCATE 25,Marge:COLOR 11,1:PRINT DebCde$;FinCde$;
  178.       END IF
  179.       Posit=Marge+LEN(DebCde$)
  180.    ELSE
  181.       IF LEN(FinCde$)>0 THEN
  182.          LOCATE 25,Marge:COLOR 11,1
  183.          PRINT RIGHT$(DebCde$,%MaxLig-1);LEFT$(FinCde$,1);
  184.       ELSE
  185.          LOCATE 25,Marge:COLOR 11,1:PRINT RIGHT$(DebCde$,%MaxLig-1);
  186.       END IF
  187.       Posit=Marge+%MaxLig-1
  188.    END IF
  189.    IF LEN(DebCde$+FinCde$)<%MaxLig+1 THEN
  190.       LOCATE 25,Marge+LEN(DebCde$+FinCde$):COLOR 11,1
  191.       PRINT SPACE$(%MaxLig+1-LEN(DebCde$+FinCde$));
  192.    END IF
  193. RETURN
  194.  
  195. '═════════════════════════════════════════════════════════════════════════════
  196.  
  197. ' *** master help screen activated with [F1] key ***
  198.  
  199. AIDE:
  200.    Debut=320:LongEcr=3520
  201.    GOSUB SAUVESCR
  202.    PLAY MusiAir$
  203.    CALL CADRE(3,8,24,73,0,7,0)
  204.    LOCATE 04,21:COLOR 14,0:PRINT "* "+Logiciel$+" : MS-DOS"+SPACE$(2)+_
  205.                                  "Commands"+SPACE$(2)+"line"+SPACE$(2)+_
  206.                                  "Editor *"
  207.    LOCATE 06,17:COLOR 15,0:PRINT "[";CHR$(17);CHR$(217);"]";
  208.    LOCATE 06,28:COLOR 10,0:PRINT "Accepts and starts  command processing, or"
  209.    LOCATE 07,28:COLOR 10,0:PRINT "alone : go to MS-DOS (EXIT to return)"
  210.    LOCATE 08,15:COLOR 15,0:PRINT "[";CHR$(27);"], [";CHR$(26);"]";
  211.    LOCATE 08,28:COLOR 10,0:PRINT "Moves cursor left, right"
  212.    LOCATE 09,12:COLOR 15,0:PRINT "[Home], [End]";
  213.    LOCATE 09,28:COLOR 10,0:PRINT "Beginning, end of current command line"
  214.    LOCATE 10,17:COLOR 15,0:PRINT "[";CHR$(17);CHR$(205);"]";
  215.    LOCATE 10,28:COLOR 10,0:PRINT "Erases the preceeding cursor character"
  216.    LOCATE 11,13:COLOR 15,0:PRINT "[Ins], [Del]";
  217.    LOCATE 11,28:COLOR 10,0:PRINT "Insert/Overwrite,  Erases the under cursor"
  218.    LOCATE 12,28:COLOR 10,0:PRINT "character"
  219.    LOCATE 13,14:COLOR 15,0:PRINT "[F9], [F10]";
  220.    LOCATE 13,28:COLOR 10,0:PRINT "Erases the beginning, the end of command"
  221.    LOCATE 14,15:COLOR 15,0:PRINT "[";CHR$(24);"], [";CHR$(25);"]";
  222.    LOCATE 14,28:COLOR 10,0:PRINT "Displays Prior, Next memorized command"
  223.    LOCATE 15,12:COLOR 15,0:PRINT "[PgUp], [PgDn]";
  224.    LOCATE 15,28:COLOR 10,0:PRINT "To the First memorized, New command"
  225.    LOCATE 16,17:COLOR 15,0:PRINT "[Esc]";
  226.    LOCATE 16,28:COLOR 10,0:PRINT "To quit"+SPACE$(2)+Logiciel$+","+SPACE$(2)+_
  227.                                  "return"+SPACE$(2)+"to system"+SPACE$(2)+_
  228.                                  "and exit"
  229.    LOCATE 17,28:COLOR 10,0:PRINT "from function or stop the Bell"
  230.    LOCATE 19,11:COLOR 15,0:PRINT "[F2], [F3], [F4]";
  231.    LOCATE 19,28:COLOR 12,0:PRINT "ASCII table, Calendar, Calculator"
  232.    LOCATE 20,14:COLOR 15,0:PRINT "[F5], [F6]";
  233.    LOCATE 20,28:COLOR 12,0:PRINT "Programming Alarm, Looking at Alarm"
  234.    LOCATE 21,14:COLOR 15,0:PRINT "[F7], [F8]";
  235.    LOCATE 21,28:COLOR 12,0:PRINT "Semi-graphics table, Full screen Clock"
  236.    LOCATE 23,31:COLOR 07,0:PRINT "[Esc]"+CHR$(32)+Retour$+CHR$(32)+Logiciel$
  237.    A$=""
  238.    WHILE A$<>CHR$(27)
  239.       FlgAidePos=0
  240.       GOSUB ATTEND
  241.       IF A$<>CHR$(27) THEN
  242.          IF FlgBell=0 THEN PLAY MusiErr$
  243.       ELSE
  244.          IF FlgBell<>0 THEN SOUND 440,0:Alarme$=Depr$:FlgBell=0:A$=""
  245.       END IF
  246.    WEND
  247.    GOSUB RESTSCR
  248. RETURN
  249.  
  250. '═════════════════════════════════════════════════════════════════════════════
  251.  
  252. ' *** ASCII table ***
  253.  
  254. ASCII:
  255.    Debut=640:LongEcr=2880
  256.    GOSUB SAUVESCR
  257.  
  258. ' *** a few peculiar variables ***
  259.  
  260.    L=-1:Texte$="ASCII CHARACTERS SET"
  261.  
  262. ' *** a beautiful window at screen ***
  263.  
  264.    CALL CADRE(5,1,22,80,0,11,2)
  265.    CALL CADRE(6,23,8,57,1,11,2)
  266.    LOCATE 20,52:PRINT CHR$(218)+STRING$(27,196)+CHR$(182);
  267.    LOCATE 21,52:PRINT CHR$(179):LOCATE 22,52:PRINT CHR$(207)
  268.    LOCATE